Displaying a virtual environment of a session

ABSTRACT

In various example embodiments, a system and method for facilitating display of virtual content are presented. A session that displays two-dimensional (2D) content of one or more items available for sale is presented on a first device of a user. A second device of the user is detected, the second device being able to display three-dimensional (3D) content of the one or more items available for sale. 3D content of the one or more items available for sale is retrieved. Display of the 3D content on the second device is caused, the 3D content selectable by the user to perform interactions with the 3D content. An indication of the user performed interactions is received and processed. A result that depicts the user performed interactions as being processed is displayed on the first device of the user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/033,590 by Tapley et al., entitled “Displaying a Virtual Environmentof a Session,” filed Sep. 25, 2020; which is a continuation of U.S.patent application Ser. No. 14/712,829 by Tapley et al., entitled“Displaying a Virtual Environment of a Session,” filed May 14, 2015, nowU.S. Pat. No. 10,825,081 B2, issued Nov. 3, 2020; each of which areincorporated herein by reference in its entirety.

TECHNICAL FIELD

Embodiments of the present disclosure relate generally to dataprocessing and, more particularly, but not by way of limitation, tofacilitating display of a virtual environment of a session.

BACKGROUND

Conventionally, a user, during a browsing session, may view an item pagehosted by a network commerce system. The item page includes content thatis displayed on a device of the user.

BRIEF DESCRIPTION OF THE DRAWINGS

Various ones of the appended drawings merely illustrate exampleembodiments of the present disclosure and cannot be considered aslimiting its scope.

FIG. 1 is a block diagram illustrating a networked system, according tosome example embodiments.

FIG. 2 is a block diagram illustrating components of a virtualenvironment system, according to some example embodiments.

FIGS. 3-6 are flowcharts illustrating operations of the virtualenvironment system in performing a method of displaying 3D content,according to some example embodiments.

FIG. 7 is a block diagram illustrating an example user interface of anitem page, according to some example embodiments.

FIG. 8 is a block diagram illustrating an example user interface of avirtual item page, according to some example embodiments.

FIG. 9 is a block diagram illustrating an example user interface of anitem page, according to some example embodiments.

FIG. 10 illustrates a diagrammatic representation of a machine in theform of a computer system within which a set of instructions may beexecuted for causing the machine to perform any one or more of themethodologies discussed herein, according to an example embodiment.

The headings provided herein are merely for convenience and do notnecessarily affect the scope or meaning of the terms used.

DETAILED DESCRIPTION

The description that follows includes systems, methods, techniques,instruction sequences, and computing machine program products thatembody illustrative embodiments of the disclosure. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth in order to provide an understanding of variousembodiments of the inventive subject matter. It will be evident,however, to those skilled in the art, that embodiments of the inventivesubject matter may be practiced without these specific details. Ingeneral, well-known instruction instances, protocols, structures, andtechniques are not necessarily shown in detail.

In various example embodiments, a system presents a session thatdisplays two-dimensional (2D) content on a first device of a user. Forinstance, the user may be viewing an item page of one or more itemsavailable for sale on the device. Also, the system may detect a seconddevice of the user that is capable of viewing three-dimensional (3D)content corresponding to the session. Upon detection of the seconddevice, the system retrieves the 3D content and causes display of the 3Dcontent on the second device of the user. The 3D content correspondingto the session includes 3D objects representative of information on anetwork of the system. In some instances, the information includes itemsavailable for sale. Moreover, the 3D content is selectable by the userto perform interactions with the 3D content. The system may process theuser interactions with the 3D content and display a result, on the firstdevice, that depicts the user interactions with the 3D content as beingprocessed. In other words, the actions performed by the user whileviewing the 3D content on the second device are also reflected in thesession that displays the 2D content. This allows for a smoothtransition between the 2D session displayed on the first device of theuser and the 3D session displayed on the second device of the user.

Accordingly, one or more of the methodologies discussed herein mayobviate a need for a user to interact with two separate sessions, whichmay have the technical effect of reducing computing resources used byone or more devices within the system. Examples of such computingresources include, without limitation, processor cycles, networktraffic, memory usage, storage space, and power consumption.

With reference to FIG. 1 , an example embodiment of a high-levelclient-server-based network architecture 100 is shown. A networkedsystem 102, in the example forms of a network-based publication orpayment system, provides server-side functionality via a network 104(e.g., the Internet or wide area network (WAN)) to one or more clientdevices 110. FIG. 1 illustrates, for example, a web client 112 (e.g., abrowser, such as the Internet Explorer® browser developed by Microsoft®Corporation of Redmond, Wash. State), a client application 114, and aprogrammatic client 116 executing on the client device 110.

The client device 110 may comprise, but is not limited to, a mobilephone, desktop computer, laptop, portable digital assistants (PDAs),smart phones, tablets, virtual headsets, ultra-books, netbooks, laptops,multi-processor systems, microprocessor-based or programmable consumerelectronics, game consoles, set-top boxes, or any other communicationdevice that a user may utilize to access the networked system 102. Insome embodiments, the client device 110 comprises a display module (notshown) to display information (e.g., in the form of user interfaces). Infurther embodiments, the client device 110 may comprise one or more of atouch screens, accelerometers, gyroscopes, cameras, microphones, globalpositioning system (GPS) devices, and so forth. The client device 110may be a device of a user that is used to perform a transactioninvolving digital items within the networked system 102. In oneembodiment, the networked system 102 is a network-based marketplace thatresponds to requests for product listings, publishes publicationscomprising item listings of products available on the network-basedmarketplace, and manages payments for these marketplace transactions.For example, one or more portions of the network 104 may be an ad hocnetwork, an intranet, an extranet, a virtual private network (VPN), alocal area network (LAN), a wireless LAN (WLAN), a wide area network(WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), aportion of the Internet, a portion of the Public Switched TelephoneNetwork (PSTN), a cellular telephone network, a wireless network, a WiFinetwork, a WiMax network, another type of network, or a combination oftwo or more such networks.

Each of the client devices 110 includes one or more applications (alsoreferred to as “apps”) such as, but not limited to, a web browser,messaging application, electronic mail (email) application, ane-commerce site application (also referred to as a marketplaceapplication), and the like. In some embodiments, if the e-commerce siteapplication is included in a given one of the client device 110, thenthis application is configured to locally provide the user interface andat least some of the functionalities with the application configured tocommunicate with the networked system 102, on an as needed basis, fordata and/or processing capabilities not locally available (e.g., accessto a database of items available for sale, to authenticate a user, toverify a method of payment). Conversely if the e-commerce siteapplication is not included in the client device 110, the client device110 may use its web browser to access the e-commerce site (or a variantthereof) hosted on the networked system 102.

One or more users 106 may be a person, a machine, or other means ofinteracting with the client device 110. In example embodiments, the user106 is not part of the network architecture 100, but interacts with thenetwork architecture 100 via the client device 110 or other means. Forinstance, the user 106 provides input (e.g., touch screen input oralphanumeric input) to the client device 110 and the input iscommunicated to the networked system 102 via the network 104. In thisinstance, the networked system 102, in response to receiving the inputfrom the user 106, communicates information to the client device 110 viathe network 104 to be presented to the user 106. In this way, the user106 can interact with the networked system 102 using the client device110.

An application program interface (API) server 120 and a web server 122are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 140. The application servers 140hosts one or more publication systems 142 and payment systems 144, eachof which may comprise one or more modules or applications and each ofwhich may be embodied as hardware, software, firmware, or anycombination thereof. The application servers 140 are, in turn, shown tobe coupled to one or more database servers 124 that facilitate access toone or more information storage repositories or database(s) 126. In anexample embodiment, the databases 126 are storage devices that storeinformation to be posted (e.g., publications or listings) to thepublication system 142. The databases 126 may also store digital iteminformation in accordance with example embodiments.

Additionally, a third party application 132, executing on third partyserver(s) 130, is shown as having programmatic access to the networkedsystem 102 via the programmatic interface provided by the API server120. For example, the third party application 132, utilizing informationretrieved from the networked system 102, supports one or more featuresor functions on a website hosted by the third party. The third partywebsite, for example, provides one or more promotional, marketplace, orpayment functions that are supported by the relevant applications of thenetworked system 102.

The publication systems 142 provide a number of publication functionsand services to users 106 that access the networked system 102. Thepayment systems 144 likewise provide a number of functions to perform orfacilitate payments and transactions. While the publication system 142and payment system 144 are shown in FIG. 1 to both form part of thenetworked system 102, it will be appreciated that, in alternativeembodiments, each system 142 and 144 may form part of a payment servicethat is separate and distinct from the networked system 102. In someembodiments, the payment systems 144 may form part of the publicationsystem 142.

The virtual environment system 150 provides virtual three-dimensionalcontent that is displayed on a user device capable of viewing thethree-dimensional content. The virtual environment system 150, upondetection of the user device, retrieves 3D content that corresponds to asession that a user is viewing. For example, the virtual environmentsystem 150 may access the user 3D content from the databases 126, thethird party servers 130, the publication system 142, and other sources.In some example embodiments, the virtual environment system 150communicates with the publication systems 142 (e.g., accessing itemlistings) and payment system 144. In an alternative embodiment, thevirtual environment system 150 may be a part of the publication system142.

Further, while the client-server-based network architecture 100 shown inFIG. 1 employs a client-server architecture, the present inventivesubject matter is of course not limited to such an architecture, andcould equally well find application in a distributed, or peer-to-peer,architecture system, for example. The various publication system 142,payment system 144, and virtual environment system 150 could also beimplemented as standalone software programs, which do not necessarilyhave networking capabilities.

The web client 112 accesses the various publication and payment systems142 and 144 via the web interface supported by the web server 122.Similarly, the programmatic client 116 accesses the various services andfunctions provided by the publication and payment systems 142 and 144via the programmatic interface provided by the API server 120. Theprogrammatic client 116 may, for example, be a seller application (e.g.,the Turbo Lister application developed by eBay® Inc., of San Jose,Calif.) to enable sellers to author and manage listings on the networkedsystem 102 in an off-line manner, and to perform batch-modecommunications between the programmatic client 116 and the networkedsystem 102.

FIG. 2 is a block diagram illustrating components of the virtualenvironment system 150, according to some example embodiments. Thevirtual environment system 150 is shown as including a session module210, a detection module 220, a virtual content module 230, a displaymodule 240, a reception module 250, and a process module 260, allconfigured to communicate with each other (e.g., via a bus, sharedmemory, or a switch). Any one or more of the modules described hereinmay be implemented using hardware (e.g., one or more processors of amachine) or a combination of hardware and software. For example, anymodule described herein may configure a processor (e.g., among one ormore processors of a machine) to perform the operations described hereinfor that module. Moreover, any two or more of these modules may becombined into a single module, and the functions described herein for asingle module may be subdivided among multiple modules. Furthermore,according to various example embodiments, modules described herein asbeing implemented within a single machine, database, or device may bedistributed across multiple machines, databases, or devices.

In various example embodiments, the session module 210 is configured tocause presentation of a session that displays two-dimensional (2D)content. In some instances, the 2D content is of one or more itemsavailable for sale. In doing so, the session module 210 communicateswith a first device of a user and presents the session on that device(e.g., client device 110). Example sessions may include browsing an itempage of one or more items available for sale, viewing a website of abrick-and-mortar store, watching a video clip, and the like. Moreover,the session module 210 is further to cause presentation of the sessionbased on user credentials of a user. For instance, a user provides theuser credentials to log into a user account. Upon login to the useraccount, the session module 210 presents the session that displays the2D content.

In various example embodiments, the detection module 220 detects asecond device of the user that is able to display three-dimensional (3D)content of the one or more items available for sale. The second deviceof the user may be a virtual reality (VR) headset, a VR component of amobile device, or any other device compatible with displaying 3Dcontent. In further embodiments, the detection module 220 is to receivethe user credentials from the second device of the user.

In various example embodiments, the virtual content module 230 retrievesthe 3D content that corresponds to the 2D content for the session. The3D content includes one or more 3D objects. For instance, the 3D contentis of the one or more items available for sale, and each of the one ormore items available for sale is represented as a 3D object.Additionally, in some instances, the 3D content will include a virtualenvironment for the session. In some instances, the virtual environmentis used to present the 3D objects representative of the one or moreitems available for sale. The virtual environment may include a 3D itempage, a 3D layout of a brick-and-mortar store, a 3D layout of a mall,and the like. The 3D item page depicts the 2D components of the itempage in 3D form. For instance, instead of an image of the item, a 3Dmodel of the item is presented in the 3D item page. The 3D layout of thebrick-and-mortar store may depict the real-life layout of thebrick-and-mortar store. Also, the 3D lay out of the mall may depict thereal-life layout of a shopping mall. Therefore, in some instances, theone or more items available for sale will be arranged as 3D objectswithin the virtual environment in a manner that emulates their real-lifecounterparts, such as the brick-and mortar store or the shopping mall.

In various example embodiments, the virtual content module 230 isfurther to retrieve the 3D content based on the user credentials. Inother words, the same user credentials used to present the session thatdisplays the 2D content is also used to retrieve or access the 3Dcontent. In further embodiments, the 3D content is labeled ascorresponding to the 2D content and is stored in a database, such as thedatabase 126. Therefore, the virtual content module 230 retrieves the 3Dcontent corresponding to the 2D content from the database 126.

Moreover, in some instances, the virtual content module 230 is furtherto retrieve the 3D content based on a location of the second device. Forinstance, the virtual content module 230 retrieves 3D content thatdepicts a layout of a brick-and-mortar store which is a pre-defineddistance from the location of the second device. This allows for theuser to view the 3D content pertaining to a local brick-and-mortar storefamiliar to the user. In this regard, the virtual content module 230 isfurther to identify the brick-and-mortar store within the pre-defineddistance from the location of the second device.

In various example embodiments, the display module 240 causes display ofthe 3D content on the second device of the user. Moreover, the 3Dcontent displayed on the second device of the user is selectable by theuser to perform user interactions with the 3D content. Further, sincethe 3D content depicts the one or more items available for sale as 3Dobjects, the interactions with the 3D content include selecting the 3Dobjects. For example, in order to select the 3D objects, the user isable to move the 3D objects representative of the one or more itemsavailable for sale to a virtual shopping cart. The interactions with the3D content also include indicating a request to purchase one of the oneor more items. For instance, a user performs a gesture with respect to a3D object, the gesture corresponding to a request to purchase the item(e.g., shaking the item, flipping the item, and the like). Theinteractions with the 3D content may further include zooming in ornavigating the 3D content, such as the virtual environment for thesession. In some instances, the display module 240 also causes displayof a set of controls that enable the user to perform interactions withthe 3D content. For example, the set of controls may allow the user torotate the 3D content and view the 3D content from multiple angles.Moreover, the interactions with the 3D content may be performed on thesecond device of the user.

In various example embodiments, the reception module 250 is configuredto receive an indication of user performed interactions with the 3Dcontent. The indication of the user performed interaction may be sentfrom the second device to the reception module 250. The indications mayinclude receiving a selection of the 3D objects from the displayed 3Dcontent. For example, the user, viewing the 3D content within thevirtual environment, may select one or more 3D objects from the 3Dcontent. As stated above, the user may indicate selection of the one ormore 3D objects by performing a gesture (e.g., a gesture of picking upthe 3D object and moving it to a virtual shopping cart) on the seconddevice. Moreover, the 3D objects may be displayed as being arranged in avirtual layout of a brick-and-mortar store that the user is familiarwith. The indications may also include receiving a request to purchasean item corresponding to a 3D object from the displayed 3D content. Theuser may send the request by performing a gesture (e.g., a gesture ofshaking the 3D object, flipping the 3D object, and the like) on thesecond device.

In various example embodiments, the reception module 250 is further toreceive a location of the second device of the user. The location of thesecond device of the user may be indicated by geographical coordinates.Moreover, a GPS receiver embodied within the second device is able toidentify the location of the second device and send the location to thereception module 250.

In further embodiments, the reception module 250 is to receive usercredentials from the first device of the user. The user credentialsinclude user password and login information. Moreover, the usercredentials are used to login to a user account of the user. In someinstances, the user account of the user is used to access the sessionthat displays the 2D content. Moreover, the 3D content of the session isdisplayed to the user based on the user credentials.

In various example embodiments, the process module 260 is configured toprocess the received indication of the user performed interactions withthe 3D content. In some instances, the process module 260 processes theuser performed interactions with the user account of the user. In thisregard, the process module 260 is further to add items corresponding tothe selected 3D objects to a virtual shopping cart (e.g., 3D shoppingcart) that is associated with the account of the user. In someinstances, the process module 260 is further to debit or to subtract apurchase price of the item that the user has requested to purchase froman account of the user, the item corresponding to the 3D object from thedisplayed 3D content. Therefore, in some instances, the process module260 is to process the user performed interactions based on the receiveduser credentials.

In various example embodiments, the display module 240 is configured tocause display, on the first device of the user, of a user interface thatincludes a result that depicts the user performed interactions as beingprocessed for the session (e.g., transmit instructions and informationto cause the display on the first device). For example, the displaymodule 240 in some instances is configured to cause display of the itemscorresponding to the 3D objects as being added to the virtual shoppingcart (e.g., transmit instructions and information to cause the displayon the second device). As another example, the display module 240 is tocause display of the purchase price of the purchased item as beingdebited from the account of the user. Also, the display module 240 is tocause display of the purchased item as being sold to the user. Infurther embodiments, the display module 240 is configured to causedisplay, on the second device of the user, a user interface that depictsthe user performed interactions as being processed for the session.

FIG. 3-6 are flowcharts illustrating operations of the virtualenvironment system 150 in performing a method 300 of displaying 3Dcontent, according to some example embodiments. Operations in the method300 may be performed by the virtual environment system 150, usingmodules described above with respect to FIG. 2 . As shown in FIG. 3 ,the method 300 includes operations 310, 320, 330, 340, 350, 360, and370.

At operation 310, the session module 210 causes presentation on a firstdevice a session that displays 2D content of one or more items availablefor sale. As stated earlier, the session may include browsing an itempage of one or more items available for sale, viewing a website of abrick-and-mortar store, watching a video clip, and the like.

At operation 320, the detection module 220 detects a second device thatis able to receive 3D content of the one or more items available forsale. In some instances, the detection module 220 detects the seconddevice by receiving a request from the second device to view 3D content.Moreover, the second device may include identical user credentials asthose used in operation 310 as part of the request.

At operation 330, the virtual content module 230 retrieves 3D contentthat corresponds to the 2D content for the session. For instance, the 3Dcontent may be of the one or more items available for sale.Additionally, the virtual content module 230 retrieves 3D content whichincludes a virtual environment for the session.

At operation 340, the display module 240 causes display of the 3Dcontent on the second device. Moreover, the 3D content is selectable bythe user to perform interactions with the 3D content. For example, theuser may select 3D objects from among the 3D content. As anotherexample, the user may zoom in on the 3D content, or the user maynavigate through the 3D content. In some instances, the display module240 is further to cause display a set of controls that enable to theuser to perform interactions with the 3D content. The set of controlsenable the user to rotate and view the 3D content from one or moreangles.

At operation 350, the reception module 250 receives, from the seconddevice, an indication of user performed interactions with the 3Dcontent. For example, the reception module 250 may receive a userselection of the 3D objects from among the 3D content.

At operation 360, the process module 260 processes the receivedindication of the user performed interactions with the 3D content, asfurther explained below.

At operation 370, the display module 240 causes display of a userinterface that includes a result that depicts the user performedinteractions as being processed for the session, as further explainedbelow.

As shown in FIG. 4 , the method 300 may include one or more ofoperations 410, 420, and 430. Operations 410 and 420 may be performedprior to the operation 330. Operation 430 may be performed prior to theoperation 310.

At operation 410, the reception module 250 receives a location of thesecond device. The location of the second device includes GPScoordinates of the second device. The GPS coordinates of the seconddevice is identified using a GPS received embodied on the second device.The location of the second device may also include a physical address.

At operation 420, the virtual content module 230 identifies abrick-and-mortar store within a pre-defined distance from the locationof the second device. In doing so, the virtual content module 230retrieves a list of brick-and-mortar stores that are within thepre-defined distance from the identified location of the second device.For example, the virtual content module 230 analyzes a map that includesthe location the second device and retrieves, from the map,brick-and-mortar stores that are identified as being within thepre-defined distance from the location of the second device.

At operation 430, the reception module 250 receives user credentialspertaining to the user. The user credentials include user password andlogin information. Moreover, the user credentials are used to login to auser account of the user. The user account of the user is thereafterused to access the session that displays the 2D content and the 3Dcontent. The reception module 250 receives the user credentials fromeither the first device of the user or the second device of the user.

At shown in FIG. 5 , the method 300 may include one or more ofoperations 510, 520, and 530. Operation 510 may be included as part ofoperation 350. Operation 520 may be included as part of operation 360.Operation 530 may be included as part of operation 370.

At operation 510, the reception module 250 receives a selection of 3Dobjects from the 3D content displayed. In some instances, the 3D objectsrepresent one or more items. The user is able to indicate the selectionby performing a gesture with respect to the 3D objects. For example, theuser is able to indicate a selection of a 3D object by moving the 3Dobject to a further 3D object, the further 3D object representing avirtual shopping cart. Alternatively, the user may indicate a selectionof a 3D object by performing a grabbing gesture with respect to the 3Dobject.

At operation 520, the process module 260 adds the items corresponding tothe selected 3D objects to a virtual shopping cart (e.g., 3D shoppingcart).

At operation 530, the display module 240 displays the itemscorresponding to the selected 3D objects as being added to the virtualshopping cart. In other words, the display module 240 causes display onthe first device of the user the items corresponding to the 3D objectsselected at operation 510 as being added to the virtual shopping cart.In some instances, items corresponding to the 3D objects are shown asbeing inside the virtual shopping cart.

As shown in FIG. 6 , the method 300 may include one or more ofoperations 610, 620, and 630. Operation 610 may be included as part ofoperation 350. Operation 620 may be included as part of operation 360.Operation 630 may be included as part of operation 370.

At operation 610, the reception module 250 receives a request topurchase an item corresponding to a 3D object from the displayed 3Dcontent. The user is able to indicate the request by performing agesture with respect to the 3D object. For example, the user may shakethe 3D object, or flip the 3D object to send the request to purchase theitem correspond to the 3D object.

At operation 620, the process module 260 subtracts a purchase price ofthe item from an account of the user. For example, the account of theuser may be linked to a credit card of the user. Further, the processmodule 260 charges the credit card of the user for the purchase price ofthe item. Alternatively, the account of the user may have a certainamount of credits, and the process module 260 subtracts the purchaseprice of the item from the amount of credits linked to the account.

At operation 630, the display module 240 causes display of the purchaseprice of the item as being subtracted from the account of the user. Inother words, the display module 240 causes display on the first deviceof the user the purchase price of the item as being subtracted from theaccount of the user, as result of the operation 620.

FIG. 7 is a block diagram illustrating an example user interface of anitem page 700, according to some example embodiments. The item page 700includes an image corresponding to a first item 710 (e.g., vintage coin)available for sale and an image corresponding to a second item 720(e.g., vintage baseball bat) available for sale. Moreover, the item page700 is presented on a first client device as part of a session (e.g.,operation 310 of FIG. 3 ). Also, a user operating the client device maybe logged into a user account, as indicated by a description 730, inorder to view the item page 700. The user may provide user credentialsin order to log into the user account.

FIG. 8 is a block diagram illustrating an example user interface of avirtual item page 800, according to some example embodiments. Thevirtual item page 800 is presented on a second client device that isable to display three-dimensional content. The virtual item page 800 maybe a virtual environment including 3D content that corresponds to theitem page 700 of FIG. 7 . Further, the virtual item page 800 includes 3Dcontent that depicts the first item 710 and the second item 720 as 3Dobjects. For example, the virtual item page 800 includes a first 3Dobject 810 which depicts the image corresponding to the first item 710of FIG. 7 in 3D form. Also, the virtual item page 800 includes a second3D object 820 which depicts the image corresponding to the second item720 of FIG. 7 in 3D form. The 3D content is further selectable by theuser to perform interactions with the 3D content. For instance, thevirtual item page 800 includes a first set of controls 815 that allowthe user to rotate and view the first 3D object 810 (e.g., vintagecoin). Also, the virtual item page 800 includes a second set of controls825 that allow the user to rotate and view the second 3D object 820(e.g., vintage baseball bat).

Also included in the virtual item page 800 is a virtual shopping cart850 where the user may place the 3D objects displayed in the virtualitem page 800. For example, the user may drag each of the 3D objectsinto the virtual shopping cart 850. As shown, the virtual shopping cart850 includes the 3D object of the vintage baseball bat. Once the 3Dobjects are placed into the virtual shopping cart 850, these userinteractions are sent from the second client device to the virtualenvironment system 150 to be processed by the virtual environment system150 (e.g., operations 350 and 360 of FIG. 3 ). Moreover, the user mayaccess the virtual item page 800 while logged into a user account, asindicated by the description 860.

FIG. 9 is a block diagram illustrating an example user interface of anitem page 900, according to some example embodiments. The item page 900is displayed on the first client device that was also used to displaythe item page 700 of FIG. 7 . The item page 900 includes a result 905that depicts the user performed interactions with the 3D objects asbeing processed. For instance, the result 905 indicates that both thefirst item 910 and the second item 920 have been added to the shoppingcart as a result of the interactions performed by the user in thevirtual item page 800. Moreover, an image corresponding to the firstitem 910 corresponds to the image corresponding to the first item 710 ofFIG. 7 and the first 3D object 810 of FIG. 8 . Likewise, an imagecorresponding to the second item 920 corresponds to the imagecorresponding to the second item 720 of FIG. 7 and the second 3D object820 of FIG. 8 . Moreover, the user may access the item page 900 whilelogged into a user account, as indicated by a description 930.

Modules, Components, and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium) orhardware modules. A “hardware module” is a tangible unit capable ofperforming certain operations and may be configured or arranged in acertain physical manner. In various example embodiments, one or morecomputer systems (e.g., a standalone computer system, a client computersystem, or a server computer system) or one or more hardware modules ofa computer system (e.g., a processor or a group of processors) may beconfigured by software (e.g., an application or application portion) asa hardware module that operates to perform certain operations asdescribed herein.

In some embodiments, a hardware module may be implemented mechanically,electronically, or any suitable combination thereof. For example, ahardware module may include dedicated circuitry or logic that ispermanently configured to perform certain operations. For example, ahardware module may be a special-purpose processor, such as aField-Programmable Gate Array (FPGA) or an Application SpecificIntegrated Circuit (ASIC). A hardware module may also includeprogrammable logic or circuitry that is temporarily configured bysoftware to perform certain operations. For example, a hardware modulemay include software executed by a general-purpose processor or otherprogrammable processor. Once configured by such software, hardwaremodules become specific machines (or specific components of a machine)uniquely tailored to perform the configured functions and are no longergeneral-purpose processors. It will be appreciated that the decision toimplement a hardware module mechanically, in dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.

Accordingly, the phrase “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. As used herein,“hardware-implemented module” refers to a hardware module. Consideringembodiments in which hardware modules are temporarily configured (e.g.,programmed), each of the hardware modules need not be configured orinstantiated at any one instance in time. For example, where a hardwaremodule comprises a general-purpose processor configured by software tobecome a special-purpose processor, the general-purpose processor may beconfigured as respectively different special-purpose processors (e.g.,comprising different hardware modules) at different times. Softwareaccordingly configures a particular processor or processors, forexample, to constitute a particular hardware module at one instance oftime and to constitute a different hardware module at a differentinstance of time.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multiplehardware modules exist contemporaneously, communications may be achievedthrough signal transmission (e.g., over appropriate circuits and buses)between or among two or more of the hardware modules. In embodiments inwhich multiple hardware modules are configured or instantiated atdifferent times, communications between such hardware modules may beachieved, for example, through the storage and retrieval of informationin memory structures to which the multiple hardware modules have access.For example, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices, and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions describedherein. As used herein, “processor-implemented module” refers to ahardware module implemented using one or more processors.

Similarly, the methods described herein may be at least partiallyprocessor-implemented, with a particular processor or processors beingan example of hardware. For example, at least some of the operations ofa method may be performed by one or more processors orprocessor-implemented modules. Moreover, the one or more processors mayalso operate to support performance of the relevant operations in a“cloud computing” environment or as a “software as a service” (SaaS).For example, at least some of the operations may be performed by a groupof computers (as examples of machines including processors), with theseoperations being accessible via a network (e.g., the Internet) and viaone or more appropriate interfaces (e.g., an Application ProgramInterface (API)).

The performance of certain of the operations may be distributed amongthe processors, not only residing within a single machine, but deployedacross a number of machines. In some example embodiments, the processorsor processor-implemented modules may be located in a single geographiclocation (e.g., within a home environment, an office environment, or aserver farm). In other example embodiments, the processors orprocessor-implemented modules may be distributed across a number ofgeographic locations.

Example Machine Architecture and Machine-Readable Medium

FIG. 10 is a block diagram illustrating components of a machine 1000,according to some example embodiments, able to read instructions from amachine-readable medium (e.g., a machine-readable storage medium) andperform any one or more of the methodologies discussed herein.Specifically, FIG. 10 shows a diagrammatic representation of the machine1000 in the example form of a computer system, within which instructions1016 (e.g., software, a program, an application, an applet, an app, orother executable code) for causing the machine 1000 to perform any oneor more of the methodologies discussed herein may be executed. Forexample the instructions may cause the machine to execute the flowdiagrams of FIGS. 3-6 . Additionally, or alternatively, the instructionsmay implement the modules described of FIG. 2 , and so forth. Theinstructions transform the general, non-programmed machine into aparticular machine programmed to carry out the described and illustratedfunctions in the manner described. In alternative embodiments, themachine 1000 operates as a standalone device or may be coupled (e.g.,networked) to other machines. In a networked deployment, the machine1000 may operate in the capacity of a server machine or a client machinein a server-client network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. The machine 1000 maycomprise, but not be limited to, a server computer, a client computer, apersonal computer (PC), a tablet computer, a laptop computer, a netbook,a set-top box (STB), a personal digital assistant (PDA), anentertainment media system, a cellular telephone, a smart phone, amobile device, a wearable device (e.g., a smart watch), a smart homedevice (e.g., a smart appliance), other smart devices, a web appliance,a network router, a network switch, a network bridge, or any machinecapable of executing the instructions 1016, sequentially or otherwise,that specify actions to be taken by machine 1000. Further, while only asingle machine 1000 is illustrated, the term “machine” shall also betaken to include a collection of machines 1000 that individually orjointly execute the instructions 1016 to perform any one or more of themethodologies discussed herein.

The machine 1000 may include processors 1010, memory 1030, and I/Ocomponents 1050, which may be configured to communicate with each othersuch as via a bus 1002. In an example embodiment, the processors 1010(e.g., a Central Processing Unit (CPU), a Reduced Instruction SetComputing (RISC) processor, a Complex Instruction Set Computing (CISC)processor, a Graphics Processing Unit (GPU), a Digital Signal Processor(DSP), an Application Specific Integrated Circuit (ASIC), aRadio-Frequency Integrated Circuit (RFIC), another processor, or anysuitable combination thereof) may include, for example, processor 1012and processor 1014 that may execute instructions 1016. The term“processor” is intended to include multi-core processor that maycomprise two or more independent processors (sometimes referred to as“cores”) that may execute instructions contemporaneously. Although FIG.10 shows multiple processors, the machine 1000 may include a singleprocessor with a single core, a single processor with multiple cores(e.g., a multi-core process), multiple processors with a single core,multiple processors with multiples cores, or any combination thereof.

The memory/storage 1030 may include a memory 1032, such as a mainmemory, or other memory storage, and a storage unit 1036, bothaccessible to the processors 1010 such as via the bus 1002. The storageunit 1036 and memory 1032 store the instructions 1016 embodying any oneor more of the methodologies or functions described herein. Theinstructions 1016 may also reside, completely or partially, within thememory 1032, within the storage unit 1036, within at least one of theprocessors 1010 (e.g., within the processor's cache memory), or anysuitable combination thereof, during execution thereof by the machine1000. Accordingly, the memory 1032, the storage unit 1036, and thememory of processors 1010 are examples of machine-readable media.

As used herein, “machine-readable medium” means a device able to storeinstructions and data temporarily or permanently and may include, but isnot be limited to, random-access memory (RAM), read-only memory (ROM),buffer memory, flash memory, optical media, magnetic media, cachememory, other types of storage (e.g., Erasable Programmable Read-OnlyMemory (EEPROM)) and/or any suitable combination thereof. The term“machine-readable medium” should be taken to include a single medium ormultiple media (e.g., a centralized or distributed database, orassociated caches and servers) able to store instructions 1016. The term“machine-readable medium” shall also be taken to include any medium, orcombination of multiple media, that is capable of storing instructions(e.g., instructions 1016) for execution by a machine (e.g., machine1000), such that the instructions, when executed by one or moreprocessors of the machine 1000 (e.g., processors 1010), cause themachine 1000 to perform any one or more of the methodologies describedherein. Accordingly, a “machine-readable medium” refers to a singlestorage apparatus or device, as well as “cloud-based” storage systems orstorage networks that include multiple storage apparatus or devices. Theterm “machine-readable medium” excludes signals per se.

The I/O components 1050 may include a wide variety of components toreceive input, provide output, produce output, transmit information,exchange information, capture measurements, and so on. The specific I/Ocomponents 1050 that are included in a particular machine will depend onthe type of machine. For example, portable machines such as mobilephones will likely include a touch input device or other such inputmechanisms, while a headless server machine will likely not include sucha touch input device. It will be appreciated that the I/O components1050 may include many other components that are not shown in FIG. 10 .The I/O components 1050 are grouped according to functionality merelyfor simplifying the following discussion and the grouping is in no waylimiting. In various example embodiments, the I/O components 1050 mayinclude output components 1052 and input components 1054. The outputcomponents 1052 may include visual components (e.g., a display such as aplasma display panel (PDP), a light emitting diode (LED) display, aliquid crystal display (LCD), a projector, or a cathode ray tube (CRT)),acoustic components (e.g., speakers), haptic components (e.g., avibratory motor, resistance mechanisms), other signal generators, and soforth. The input components 1054 may include alphanumeric inputcomponents (e.g., a keyboard, a touch screen configured to receivealphanumeric input, a photo-optical keyboard, or other alphanumericinput components), point based input components (e.g., a mouse, atouchpad, a trackball, a joystick, a motion sensor, or other pointinginstrument), tactile input components (e.g., a physical button, a touchscreen that provides location and/or force of touches or touch gestures,or other tactile input components), audio input components (e.g., amicrophone), and the like.

In further example embodiments, the I/O components 1050 may includebiometric components 1056, motion components 1058, environmentalcomponents 1060, or position components 1062 among a wide array of othercomponents. For example, the biometric components 1056 may includecomponents to detect expressions (e.g., hand expressions, facialexpressions, vocal expressions, body gestures, or eye tracking), measurebiosignals (e.g., blood pressure, heart rate, body temperature,perspiration, or brain waves), identify a person (e.g., voiceidentification, retinal identification, facial identification,fingerprint identification, or electroencephalogram basedidentification), and the like. The motion components 1058 may includeacceleration sensor components (e.g., accelerometer), gravitation sensorcomponents, rotation sensor components (e.g., gyroscope), and so forth.The environmental components 1060 may include, for example, illuminationsensor components (e.g., photometer), temperature sensor components(e.g., one or more thermometer that detect ambient temperature),humidity sensor components, pressure sensor components (e.g.,barometer), acoustic sensor components (e.g., one or more microphonesthat detect background noise), proximity sensor components (e.g.,infrared sensors that detect nearby objects), gas sensors (e.g., gasdetection sensors to detection concentrations of hazardous gases forsafety or to measure pollutants in the atmosphere), or other componentsthat may provide indications, measurements, or signals corresponding toa surrounding physical environment. The position components 1062 mayinclude location sensor components (e.g., a Global Position System (GPS)receiver component), altitude sensor components (e.g., altimeters orbarometers that detect air pressure from which altitude may be derived),orientation sensor components (e.g., magnetometers), and the like.

Communication may be implemented using a wide variety of technologies.The I/O components 1050 may include communication components 1064operable to couple the machine 1000 to a network 1080 or devices 1070via coupling 1082 and coupling 1072 respectively. For example, thecommunication components 1064 may include a network interface componentor other suitable device to interface with the network 1080. In furtherexamples, communication components 1064 may include wired communicationcomponents, wireless communication components, cellular communicationcomponents, Near Field Communication (NFC) components, Bluetooth®components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and othercommunication components to provide communication via other modalities.The devices 1070 may be another machine or any of a wide variety ofperipheral devices (e.g., a peripheral device coupled via a UniversalSerial Bus (USB)).

Moreover, the communication components 1064 may detect identifiers orinclude components operable to detect identifiers. For example, thecommunication components 1064 may include Radio Frequency Identification(RFID) tag reader components, NFC smart tag detection components,optical reader components (e.g., an optical sensor to detectone-dimensional bar codes such as Universal Product Code (UPC) bar code,multi-dimensional bar codes such as Quick Response (QR) code, Azteccode, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2Dbar code, and other optical codes), or acoustic detection components(e.g., microphones to identify tagged audio signals). In addition, avariety of information may be derived via the communication components1064, such as, location via Internet Protocol (IP) geo-location,location via Wi-Fi® signal triangulation, location via detecting a NFCbeacon signal that may indicate a particular location, and so forth.

Transmission Medium

In various example embodiments, one or more portions of the network 1080may be an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), the Internet, a portion of the Internet, a portion of the PublicSwitched Telephone Network (PSTN), a plain old telephone service (POTS)network, a cellular telephone network, a wireless network, a Wi-Fi®network, another type of network, or a combination of two or more suchnetworks. For example, the network 1080 or a portion of the network 1080may include a wireless or cellular network and the coupling 1082 may bea Code Division Multiple Access (CDMA) connection, a Global System forMobile communications (GSM) connection, or other type of cellular orwireless coupling. In this example, the coupling 1082 may implement anyof a variety of types of data transfer technology, such as SingleCarrier Radio Transmission Technology (1×RTT), Evolution-Data Optimized(EVDO) technology, General Packet Radio Service (GPRS) technology,Enhanced Data rates for GSM Evolution (EDGE) technology, thirdGeneration Partnership Project (3GPP) including 3G, fourth generationwireless (4G) networks, Universal Mobile Telecommunications System(UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability forMicrowave Access (WiMAX), Long Term Evolution (LTE) standard, othersdefined by various standard setting organizations, other long rangeprotocols, or other data transfer technology.

The instructions 1016 may be transmitted or received over the network1080 using a transmission medium via a network interface device (e.g., anetwork interface component included in the communication components1064) and utilizing any one of a number of well-known transfer protocols(e.g., hypertext transfer protocol (HTTP)). Similarly, the instructions1016 may be transmitted or received using a transmission medium via thecoupling 1072 (e.g., a peer-to-peer coupling) to devices 1070. The term“transmission medium” shall be taken to include any intangible mediumthat is capable of storing, encoding, or carrying instructions 1016 forexecution by the machine 1000, and includes digital or analogcommunications signals or other intangible medium to facilitatecommunication of such software.

Language

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Although an overview of the inventive subject matter has been describedwith reference to specific example embodiments, various modificationsand changes may be made to these embodiments without departing from thebroader scope of embodiments of the present disclosure. Such embodimentsof the inventive subject matter may be referred to herein, individuallyor collectively, by the term “invention” merely for convenience andwithout intending to voluntarily limit the scope of this application toany single disclosure or inventive concept if more than one is, in fact,disclosed.

The embodiments illustrated herein are described in sufficient detail toenable those skilled in the art to practice the teachings disclosed.Other embodiments may be used and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. The Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

As used herein, the term “or” may be construed in either an inclusive orexclusive sense. Moreover, plural instances may be provided forresources, operations, or structures described herein as a singleinstance. Additionally, boundaries between various resources,operations, modules, engines, and data stores are somewhat arbitrary,and particular operations are illustrated in a context of specificillustrative configurations. Other allocations of functionality areenvisioned and may fall within a scope of various embodiments of thepresent disclosure. In general, structures and functionality presentedas separate resources in the example configurations may be implementedas a combined structure or resource. Similarly, structures andfunctionality presented as a single resource may be implemented asseparate resources. These and other variations, modifications,additions, and improvements fall within a scope of embodiments of thepresent disclosure as represented by the appended claims. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

What is claimed is:
 1. A system comprising: at least one processor; andat least one memory including instructions that, when executed by the atleast one processor, cause the system to perform operations comprising:causing display, by a first device, of an item page comprising atwo-dimensional representation of an item; causing display, by a seconddevice, of a virtual environment comprising a three-dimensionalrepresentation of the item corresponding to the two-dimensionalrepresentation of the item; receiving, from the second device, anindication of a user interaction with the three-dimensionalrepresentation of the item in the virtual environment; and causingdisplay of a result of the user interaction on the item page of thefirst device, wherein the result indicates that the item has been addedto a virtual shopping cart of the virtual environment.
 2. The system ofclaim 1, wherein the instructions, when executed by the at least oneprocessor, further cause the system to perform operations comprising:receiving user credentials via the first device, wherein causing displayof the virtual environment on the second device is based at least inpart on the user credentials received via the first device.
 3. Thesystem of claim 1, wherein causing display of the virtual environment onthe second device is based at least in part on detecting the seconddevice.
 4. The system of claim 1, wherein the instructions to receive,from the second device, the indication of the user interaction with thethree-dimensional representation further causes the system to performoperations comprising: detecting a gesture performed with respect to thethree-dimensional representation of the item in the virtual environment,the gesture corresponding to a request to purchase the item; and causingdisplay of an amount debited from an account based at least in part ondetecting the gesture.
 5. The system of claim 1, wherein theinstructions, when executed by the at least one processor, further causethe system to perform operations comprising: retrieving a location of astore that is within a predefined distance of the second device; andcausing presentation of a map that indicates a location of the seconddevice and the location of the store.
 6. The system of claim 1, whereinthe instructions to receive the indication of the user interactionfurther causes the system to perform operations comprising: receivingthe indication of the user interaction that indicates a user selectionof the three-dimensional representation of the item in the virtualenvironment.
 7. The system of claim 1, wherein the instructions, whenexecuted by the at least one processor, further cause the system toperform operations comprising: causing display, by the second device, ofthe three-dimensional representation of the item inside of athree-dimensional representation of the virtual shopping cart based atleast in part on the indication of the user interaction.
 8. The systemof claim 1, wherein the instructions to cause display of the result ofthe user interaction further causes the system to perform operationscomprising: causing display, by the first device, of the two-dimensionalrepresentation of the item inside of a two-dimensional representation ofthe virtual shopping cart based at least in part on the indication ofthe user interaction.
 9. A computer-implemented method, comprising:causing display, by a first device, of an item page comprising atwo-dimensional representation of an item; causing display, by a seconddevice, of a virtual environment comprising a three-dimensionalrepresentation of the item corresponding to the two-dimensionalrepresentation of the item; receiving, from the second device, anindication of a user interaction with the three-dimensionalrepresentation of the item in the virtual environment; and causingdisplay of a result of the user interaction on the item page of thefirst device, wherein the result indicates that the item has been addedto a virtual shopping cart of the virtual environment.
 10. Thecomputer-implemented method of claim 9, further comprising: receivinguser credentials via the first device, wherein causing display of thevirtual environment on the second device is based at least in part onthe user credentials received via the first device.
 11. Thecomputer-implemented method of claim 9, wherein causing display of thevirtual environment on the second device is based at least in part ondetecting the second device.
 12. The computer-implemented method ofclaim 9, wherein receiving, from the second device, the indication ofthe user interaction with the three-dimensional representationcomprises: detecting a gesture performed with respect to thethree-dimensional representation of the item in the virtual environment,the gesture corresponding to a request to purchase the item; and causingdisplay of an amount debited from an account based at least in part ondetecting the gesture.
 13. The computer-implemented method of claim 9,further comprising: retrieving a location of a store that is within apredefined distance of the second device; and causing presentation of amap that indicates a location of the second device and the location ofthe store.
 14. The computer-implemented method of claim 9, whereinreceiving the indication of the user interaction comprises: receivingthe indication of the user interaction that indicates a user selectionof the three-dimensional representation of the item in the virtualenvironment.
 15. The computer-implemented method of claim 9, furthercomprising: causing display, by the second device, of thethree-dimensional representation of the item inside of athree-dimensional representation of the virtual shopping cart based atleast in part on the indication of the user interaction.
 16. Thecomputer-implemented method of claim 9, wherein causing display of theresult of the user interaction comprises: causing display, by the firstdevice, of the two-dimensional representation of the item inside of atwo-dimensional representation of the virtual shopping cart based atleast in part on the indication of the user interaction.
 17. Anon-transitory computer-readable storage medium including instructionsthat, when executed by at least one processor, causes a system toperform operations comprising: causing display, by a first device, of anitem page comprising a two-dimensional representation of an item;causing display, by a second device, of a virtual environment comprisinga three-dimensional representation of the item corresponding to thetwo-dimensional representation of the item; receiving, from the seconddevice, an indication of a user interaction with the three-dimensionalrepresentation of the item in the virtual environment; and causingdisplay of a result of the user interaction on the item page of thefirst device, wherein the result indicates that the item has been addedto a virtual shopping cart of the virtual environment.
 18. Thenon-transitory computer-readable storage medium of claim 17, theoperations further comprising: receiving user credentials via the firstdevice, wherein causing display of the virtual environment on the seconddevice is based at least in part on the user credentials received viathe first device.
 19. The non-transitory computer-readable storagemedium of claim 17, wherein causing display of the virtual environmenton the second device is based at least in part on detecting the seconddevice.
 20. The non-transitory computer-readable storage medium of claim17, wherein the instructions to receive, from the second device, theindication of the user interaction with the three-dimensionalrepresentation further causes the system to perform operationscomprising: detecting a gesture performed with respect to thethree-dimensional representation of the item in the virtual environment,the gesture corresponding to a request to purchase the item; and causingdisplay of an amount debited from an account based at least in part ondetecting the gesture.